﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using INSTA.StockApplication.BLL;

namespace INSTA.StockApplication.UI.Windows
{
    public partial class AddUsers : DevExpress.XtraEditors.XtraForm
    {
        private int id;

        public AddUsers()
        {
            InitializeComponent();
            fillComboBox();
        }

        public AddUsers(int id,string nom,string prenom,string mail,string adresse,string cp,string ville,
            string pays,string telephone)
        {
            InitializeComponent();
            fillComboBox();
            comboBox1.Visible = false;
            label9.Visible = false;
            enom.Text = nom;
            epays.Text = pays;
            eprenom.Text = prenom;
            eadresse.Text = adresse;
            ecp.Text = cp;
            email.Text = mail;
            etelephone.Text = telephone;
            eville.Text = ville;
            this.id = id;
        }

        private void fillComboBox()
        {
            var type = new TypeUser();
            comboBox1.DataSource = type.GetRolesFromDatabase();
            comboBox1.DisplayMember = "LIBELLE_ROLE";
            comboBox1.ValueMember = "ID_ROLE";
        }

        private bool checkFields()
        {
            if (eadresse.Text == "" || ecp.Text == "" || email.Text == "" || enom.Text == "" ||
                epays.Text == "" || eprenom.Text == "" || etelephone.Text == "" || eville.Text == "")
            {
                return false;
            }
            return true;
        }

        private void resetFields()
        {
            eadresse.Text = "";
            ecp.Text = "";
            email.Text = "";
            enom.Text = "";
            epays.Text = "";
            eprenom.Text = "";
            etelephone.Text = "";
            eville.Text = "";
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void simpleButton1_Click(object sender, EventArgs e)
        {
            if (checkFields())
            {
                if (id > 0)
                {
                    bool modifUser = User.UpdateUser(id, enom.Text, eprenom.Text, email.Text, eadresse.Text,
                                                     ecp.Text, eville.Text, epays.Text, etelephone.Text);
                    if (modifUser)
                    {
                        MessageBox.Show("Utilisateur modifié.");
                    }
                    else
                    {
                        MessageBox.Show("Une erreur s'est produite lors de la modification de l'utilisateur.");
                    }
                }
                else
                {
                    bool addUser = User.AddUser(enom.Text, eprenom.Text, email.Text, eadresse.Text,
                    ecp.Text, eville.Text, epays.Text, etelephone.Text, comboBox1.SelectedIndex + 1);
                    if (addUser)
                    {
                        MessageBox.Show("Utilisateur enregistre.");
                    }
                    else
                    {
                        MessageBox.Show("Une erreur s'est produite lors de l'enregistrement de l'utilisateur.");
                    }
                }

                resetFields();
                this.Close();
            }
            else
            {
                MessageBox.Show("Veuillez renseigner tous les champs");
            }
        }
    }
}